home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD023b.dsk / RIGHT TRIANGLE.bas < prev    next >
BASIC Source File  |  2003-06-12  |  6KB  |  195 lines

  1. 10  REM    SOLUTION TO TRIANGLE 
  2. 20  REM   *=*=*=*=*=*=*=*=*=*=*=
  3. 30  HOME 
  4. 40  HGR : HCOLOR= 3
  5. 50  REM 
  6. 60  REM  MAKE * TRIANGLE *
  7. 70  REM 
  8. 80  HPLOT 30,15 TO 30,130
  9. 90  HPLOT  TO 225,130
  10. 100  HPLOT  TO 30,15
  11. 110  HPLOT 30,115 TO 50,115
  12. 120  HPLOT  TO 50,130
  13. 130  REM  
  14. 140  REM  MAKE * A *
  15. 150  REM 
  16. 160  HPLOT 10,90 TO 10,75
  17. 170  HPLOT  TO 15,70
  18. 180  HPLOT  TO 20,75
  19. 190  HPLOT  TO 20,90
  20. 200  HPLOT 10,80 TO 20,80
  21. 210  REM 
  22. 220  REM  MAKE * B *
  23. 230  REM 
  24. 240  HPLOT 94,159 TO 95,140
  25. 250  HPLOT  TO 102,140
  26. 260  HPLOT  TO 105,142
  27. 270  HPLOT  TO 105,148
  28. 280  HPLOT  TO 102,150
  29. 290  HPLOT  TO 105,152
  30. 300  HPLOT  TO 105,157
  31. 310  HPLOT  TO 103,159
  32. 320  HPLOT  TO 95,159
  33. 330  HPLOT 95,150 TO 102,150
  34. 340  REM 
  35. 350  REM  MAKE * C *
  36. 360  REM 
  37. 370  HPLOT 145,65 TO 137,65
  38. 380  HPLOT  TO 135,61
  39. 390  HPLOT  TO 135,49
  40. 400  HPLOT  TO 137,45
  41. 410  HPLOT  TO 145,45
  42. 420  REM 
  43. 430  REM    MAKE * D * 
  44. 440  REM 
  45. 450  HPLOT 140,120 TO 140,100
  46. 460  HPLOT  TO 145,100
  47. 470  HPLOT  TO 150,105
  48. 480  HPLOT  TO 150,115
  49. 490  HPLOT  TO 145,120
  50. 500  HPLOT  TO 140,120
  51. 510  HPLOT 143,122 TO 143,130
  52. 520  HPLOT  TO 140,127
  53. 530  HPLOT  TO 145,127
  54. 540  HPLOT  TO 143,130
  55. 550  HPLOT 142,96 TO 145,85
  56. 560  HPLOT 142,87 TO 147,86
  57. 570  REM 
  58. 580  REM   ** INPUTS **
  59. 590  REM 
  60. 600 PD = 57.29577795: REM   180/PI
  61. 610 RD = .01745329: REM   PI/180
  62. 620  VTAB 21: PRINT "---------------------------------"
  63. 630  VTAB 22: HTAB 4: INPUT "A? ";A$:A =  VAL(A$)
  64. 640  VTAB 22: HTAB 20: INPUT "B? ";B$:B =  VAL(B$)
  65. 650  IF A >0  AND B >O  THEN 740
  66. 660  VTAB 23: HTAB 4: INPUT "C? ";C$:C =  VAL(C$)
  67. 670  IF A >0  AND C >0  THEN 800
  68. 680  IF B >0  AND C >0  THEN 950
  69. 690  VTAB 23: HTAB 20: INPUT "D? ";D$:D =  VAL(D$)
  70. 700  IF A >0  AND D >0  THEN 880
  71. 710  IF B >O  AND D >0  THEN 1020
  72. 720  IF C >0  AND D >0  THEN 1090
  73. 730  HOME : PRINT  CHR$(7): VTAB 23: HTAB 5: PRINT "INSUFFICIANT INFORMATION!!": FOR PA = 1 TO 1000: NEXT PA: HOME : GOTO 620
  74. 740  REM 
  75. 750  REM  * A&B FIND C&D *
  76. 760  REM 
  77. 770 C =  SQR((A ^2) +(B ^2))
  78. 780 D =  ATN(A/B) *PD: GOSUB 1630
  79. 790  GOSUB 1440: GOTO 1200
  80. 800  REM 
  81. 810  REM  * A&C FIND B&D *
  82. 820  REM 
  83. 830  GOSUB 1440
  84. 840  ONERR  GOTO 1240
  85. 850 B =  SQR(C ^2 -A ^2)
  86. 860 D =  ATN(A/B) *PD: GOSUB 1630
  87. 870  GOSUB 1440: GOTO 1200
  88. 880  REM 
  89. 890  REM  * A&D FIND B&C *
  90. 900  REM 
  91. 910  GOSUB 1350
  92. 920 C = A/ SIN(D *RD)
  93. 930 B =  SQR((C ^2) -(A ^2))
  94. 940  GOSUB 1440: GOTO 1200
  95. 950  REM 
  96. 960  REM  * B&C FIND A&D *
  97. 970  REM 
  98. 980  ONERR  GOTO 1250
  99. 990 A =  SQR((C ^2) -(B ^2))
  100. 1000 D =  ATN(A/B) *PD: GOSUB 1630
  101. 1010  GOSUB 1440: GOTO 1200
  102. 1020  REM 
  103. 1030  REM  * B&D FIND A&C *
  104. 1040  REM 
  105. 1050  GOSUB 1350
  106. 1060 C = B/( COS(D *RD))
  107. 1070 A = B *( TAN(D *RD))
  108. 1080  GOSUB 1440: GOTO 1200
  109. 1090  REM 
  110. 1100  REM  * C&D FIND A&B *
  111. 1110  REM 
  112. 1120  GOSUB 1350
  113. 1130 A = C *( SIN(D *RD))
  114. 1140 B = C *( COS(D *RD))
  115. 1150  GOSUB 1440: GOTO 1200
  116. 1160  REM 
  117. 1170  REM  * ROUND OFF *
  118. 1180  REM 
  119. 1190 X =  INT(X *10000 +.5)/10000: RETURN 
  120. 1200  REM 
  121. 1210  REM  * OUTPUT TO SCREEN *
  122. 1220  REM 
  123. 1230  IF A >B  THEN  HOME : PRINT  CHR$(7): VTAB 23: HTAB 3: PRINT "A CANNOT BE GREATER THAN B!!": FOR PA = 1 TO 1000: NEXT PA: HOME : GOTO 620
  124. 1240  IF A >C  THEN  HOME : PRINT  CHR$(7): VTAB 23: HTAB 3: PRINT "A CANNOT BE GREATER THAN C!!": FOR PA = 1 TO 1000: NEXT PA: HOME : GOTO 620
  125. 1250  IF B >C  THEN  HOME : PRINT  CHR$(7): VTAB 23: HTAB 3: PRINT "B CANNOT BE GREATER THAN C!!": FOR PA = 1 TO 1000: NEXT PA: HOME : GOTO 620
  126. 1260  HOME 
  127. 1270  VTAB 21: PRINT "---------------------------------"
  128. 1280  VTAB 22: HTAB 4: PRINT "A= ": VTAB 22: HTAB 20: PRINT "B= ": VTAB 23: HTAB 4: PRINT "C= ": VTAB 23: HTAB 20: PRINT "D= "
  129. 1290  VTAB 22: HTAB 7: PRINT "00.0000": VTAB 22: HTAB 23: PRINT "00.0000": VTAB 23: HTAB 7: PRINT "00.0000": VTAB 23: HTAB 23: PRINT "00.0000"
  130. 1300 X = A: GOSUB 1720:A = X: VTAB 22: HTAB (HT): PRINT A
  131. 1310 X = B: GOSUB 1720:B = X: VTAB 22: HTAB (HT +16): PRINT B
  132. 1320 X = C: GOSUB 1720:C = X: VTAB 23: HTAB (HT): PRINT C
  133. 1330 X = D: GOSUB 1720:D = X: VTAB 23: HTAB (HT +16): PRINT D
  134. 1340  WAIT  -16384,128: POKE  -16368,0: HOME : IF  PEEK( -16384) < >27  THEN 620
  135. 1345  PRINT : TEXT : PRINT "<CTRL-D>RUNMENU"
  136. 1350  REM 
  137. 1360  REM  * DEG TO DEC *
  138. 1370  REM 
  139. 1380 AA =  INT(D)
  140. 1390 AB = (D -AA) *100
  141. 1400 AC =  INT(AB +.0001)
  142. 1410 AD = (AB -AC) *100
  143. 1420 D = AA +(AC/60) +(AD/3600)
  144. 1430  RETURN 
  145. 1440  REM 
  146. 1450  REM  * SEND TO ROUND OFF *
  147. 1460  REM 
  148. 1470 X = A: GOSUB 1160:A = X
  149. 1480 X = B: GOSUB 1160:B = X
  150. 1490 X = C: GOSUB 1160:C = X
  151. 1500 X = D: GOSUB 1160:D = X
  152. 1510 AA =  INT(D)
  153. 1520 AB = (D -AA) +.00001
  154. 1530 AC = AB *100
  155. 1540 AD =  INT(AC)
  156. 1550 AE =  INT((AC -AD) *100)
  157. 1560  IF AE >60  THEN AE = AE -60:AD = AD +1
  158. 1570  IF AE = 60  THEN AE = 0:AD = AD +1
  159. 1580  IF AD = 60  THEN AD = 0:AA = AA +1
  160. 1590  IF AE = 0  AND AD >0  THEN D = AA +(AD/100): RETURN 
  161. 1600  IF AD = 0  AND AE >0  THEN D = AA +(AE/10000): RETURN 
  162. 1610  IF AE = 0  AND AD = 0  THEN D = AA: RETURN 
  163. 1620  RETURN 
  164. 1630  REM 
  165. 1640  REM   * DEC TO DEG *
  166. 1650  REM 
  167. 1660 AB =  INT(D)
  168. 1670 AC = 60 *(D -AB)
  169. 1680 AD =  INT(AC +.0001)
  170. 1690 AE = 60 *(AC -AD)
  171. 1700 D = AB +(AD/100) +(AE/10000)
  172. 1710  RETURN 
  173. 1720  REM 
  174. 1730  REM   GET RID OF
  175. 1740  REM   SCI. NOTATION
  176. 1750  REM   & SET HTABS
  177. 1760  REM 
  178. 1770  IF X <.010  THEN X = X *10000:HT = 12: RETURN 
  179. 1780  IF X *1000 = 10  THEN HT = 9: RETURN 
  180. 1790  IF X >.010  AND X <1  THEN HT = 9: RETURN 
  181. 1800  IF X =  >1  AND X <10  THEN HT = 8: RETURN 
  182. 1810  IF X =  >10  AND X <100  THEN HT = 7: RETURN 
  183. 1820 HT = 6: RETURN 
  184. 1830  REM 
  185. 1840  REM 
  186. 1850  REM  ********************
  187. 1860  REM  *                  *
  188. 1870  REM  * DON MANCIER      *
  189. 1880  REM  * 47219 DEQUINDRE  *
  190. 1890  REM  * ROCHESTER MI     *
  191. 1900  REM  * 48063            *
  192. 1910  REM  *                  *
  193. 1920  REM  * (313) 852-5965   *
  194. 1930  REM  *                  *
  195. 1940  REM  ********************